#!/bin/bash

PLATFORMPATH="/Applications/Xcode.app/Contents/Developer/Platforms"
TOOLSPATH="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin"
export IPHONEOS_DEPLOYMENT_TARGET="8.0"
pwd=`pwd`

findLatestSDKVersion()
{
    sdks=`ls $PLATFORMPATH/$1.platform/Developer/SDKs`
    arr=()
    for sdk in $sdks
    do
       echo $sdk
       arr[${#arr[@]}]=$sdk
    done

    # Last item will be the current SDK, since it is alpha ordered
    count=${#arr[@]}
    if [ $count -gt 0 ]; then
       sdk=${arr[$count-1]:${#1}}
       num=`expr ${#sdk}-4`
       SDKVERSION=${sdk:0:$num}
    else
       SDKVERSION="8.0"
    fi
}

buildit()
{
    target=$1
    platform=$2

    echo ""
    echo "-------------------------------------------------------------------------------"
    echo " Compiling for $platform on $target"
    echo "-------------------------------------------------------------------------------"

    export PLATFORM=$platform
    export CC="$(xcrun -sdk iphoneos -find clang)"
    export STRIP="$(xcrun -sdk iphoneos -find strip)"
    export LD="$(xcrun -sdk iphoneos -find ld)"
    export CPP="$CC -E"
    export CFLAGS="-arch ${target} -isysroot $PLATFORMPATH/$platform.platform/Developer/SDKs/$platform$SDKVERSION.sdk -miphoneos-version-min=$SDKMINVERSION"
    export AR=$(xcrun -sdk iphoneos -find ar)
    export RANLIB=$(xcrun -sdk iphoneos -find ranlib)
    export CPPFLAGS="-arch ${target} -isysroot $PLATFORMPATH/$platform.platform/Developer/SDKs/$platform$SDKVERSION.sdk -miphoneos-version-min=$SDKMINVERSION"
    export LDFLAGS="-arch ${target} -isysroot $PLATFORMPATH/$platform.platform/Developer/SDKs/$platform$SDKVERSION.sdk"

    make clean
    make ios
    #make install

    mkdir -p $pwd/ios/$target
    mv libbinn.a $pwd/ios/$target
    mv libbinn.dylib $pwd/ios/$target
}

findLatestSDKVersion iPhoneOS
SDKMINVERSION="8.0"

buildit armv7 iPhoneOS
buildit armv7s iPhoneOS
buildit arm64 iPhoneOS
buildit i386 iPhoneSimulator
buildit x86_64 iPhoneSimulator

LIPO=$(xcrun -sdk iphoneos -find lipo)
$LIPO -create $pwd/ios/armv7/libbinn.a  $pwd/ios/armv7s/libbinn.a $pwd/ios/arm64/libbinn.a $pwd/ios/x86_64/libbinn.a $pwd/ios/i386/libbinn.a -output libbinn.a
$LIPO -create $pwd/ios/armv7/libbinn.dylib  $pwd/ios/armv7s/libbinn.dylib $pwd/ios/arm64/libbinn.dylib $pwd/ios/x86_64/libbinn.dylib $pwd/ios/i386/libbinn.dylib -output libbinn.dylib

install_name_tool -id @rpath/libbinn.dylib libbinn.dylib

mv libbinn.a $pwd/ios/
mv libbinn.dylib $pwd/ios/
make clean

echo ""
echo "done. files in the ios folder"
